package sw

import (
	"github.com/hyperledger/fabric/bccsp"
	sm2 "github.com/hyperledger/fabric/bccsp/sw/sm2"
)

type sm2PublicKey struct {
	pubkey *sm2.PublicKey
}

type sm2PrivateKey struct {
	privKey *sm2.PrivateKey
}

func (k *sm2PrivateKey) Bytes() ([]byte, error) {
	return nil, nil
}

func (k *sm2PrivateKey) SKI() []byte {
	return nil
}

func (k *sm2PrivateKey) Symmetric() bool {
	return false
}

func (k *sm2PrivateKey) Private() bool {
	return true
}

func (k *sm2PrivateKey) PublicKey() (bccsp.Key, error) {
	return &sm2PublicKey{&k.privKey.PublicKey}, nil
}

func (k *sm2PublicKey) Bytes() (raw []byte, err error) {
	return
}

func (k *sm2PublicKey) SKI() []byte {
	return []byte{}
}

func (k *sm2PublicKey) Symmetric() bool {
	return false
}

func (k *sm2PublicKey) Private() bool {
	return false
}

func (k *sm2PublicKey) PublicKey() (bccsp.Key, error) {
	return k, nil
}
